From : Crossbones (xbones@xbones.cet.com)
Subject : Tricks on how to speed up the code
 There's been a lot of talk on tips 'n' trix for beginners, well here's something
for the people out there who want more speed that's a little more advanced. I 
don't think I've ever seen it used (except by me) but it's quite useful.

 If you don't have one, go out and look for a book that covers assembly on the
680x0 machines. It doesnt have to be overly complicated, or even get in to the
hardware of the machine. That's what Blitz can do for you.

 With basic understanding of comparing and moving information around the registers,
you'll have good reason to use this command:

 TOKEJSR

 The why's:

 Some of the speed loss in Blitz2 is caused by variable handling. Especially if
you use lots of them. Each time you call a command in a library, blitz has to
do some shuffling around, to get parameters set. The more variables you use the
more it has to shuffle when it proccesses them.

 How's: 

 Calling ANY of blitz's library commands via assembly & tokejsr is fairly 
easy. (Unless you're dealing with strings.. I haven't quite gotten the hang
of how blitz stores the length of strings on the stack.)

 As an example, if you want to call QBLIT via assembly, it would be like this:

 TokeJSR Qblit

 Of course, Qblit wants paramenters. Most all commands do. You preload registers
before calling the command, and do so as follows. The beginning arguement is
D0. Qblit wants these:

   D0     D1  D2 D3
 Queue, Shape, X, Y

   To use plot, it would use:

   D0 D1    D2
    X, Y, Colour

 If you need to move a variable to or from a register, use PutReg or GetReg.

 Remember: If your program starts to require more horsepower to run, it doesn't
mean that you'll have to require faster machines to run it. There are always options
available to speed up your code. This is one option no one should overlook.